// Copyright (c) 2012 Ecma International.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
es5id: 11.8.2-4
description: >
    11.8.2 Greater-than Operator - Partial left to right order
    enforced when using Greater-than operator: toString > toString
---*/

function Test() {
    var accessed = false;
    var obj1 = {
      toString: function () {
        accessed = true;
        return 3;
      }
    };
    var obj2 = {
      toString: function () {
        return 4;
      }
    };

    assert.sameValue(obj1 > obj2, false, 'The result of (obj1 > obj2) is false');
    assert.sameValue(accessed, true, 'The value of accessed is true');
}

// preheat
const NUMBER_OF_PREHEAT = 1;
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}

ArkTools.jitCompileAsync(Test);
assert.sameValue(ArkTools.waitJitCompileFinish(Test), true, '[JIT] JIT disabled.');

// test
const NUMBER_OF_TEST = 1; // or 2
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}
